// 引入axios封装
import axios from "axios";
import { ElMessage } from 'element-plus'
import { getTokenFromCookie } from "./auth";

// 创建axios实例
const request = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_URL, // url = base url + request url
    timeout: 60000, // 60s超时
});

// 请求拦截器 一般写法模式
request.interceptors.request.use(
    (config) => {
        if (getTokenFromCookie()) {
            config.headers['token'] = getTokenFromCookie() // 让每个请求携带自定义token 请根据实际情况自行修改
        }
        return config; // 请求成功则返回response
    },
    (error) => {
        // 请求失败则显示错误状态
        ElMessage({ message: msg, type: 'error' })
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    (response) => {
        return response;
    },
    (error) => {
        ElMessage({ message: error.message, type: 'error' })
        return Promise.reject(error);
    }
);

// 导出request
export default request;
